package com.yoki.cloud.common.protocol.portal.v1.builder;


import com.yoki.cloud.common.protocol.portal.msg.PortalV1Msg;
import com.yoki.cloud.common.protocol.portal.msg.attr.PasswordMsgAttr;
import com.yoki.cloud.common.protocol.portal.msg.attr.UserNameMsgAttr;

/**
 * @author Sky$
 * @Description: TODO
 * @date 2017/10/29$ 14:37$
 */
public class PortalV1PapMsgBuilder {

    public PortalV1Msg buildReqAuthMsg(int serialNo, String userIp, String userName, String password) {
        PortalV1Msg msg = buildV1PapMsg();
        msg.setType(3);
        msg.setSerialNo(serialNo);

        msg.setUserIp(userIp);
        msg.setAttrNum(2);
        UserNameMsgAttr userNameMsgAttr = new UserNameMsgAttr(userName);
        PasswordMsgAttr passwordMsgAttr = new PasswordMsgAttr(password);
        msg.addMsgAttr(userNameMsgAttr).add(passwordMsgAttr);
        return msg;
    }

    public PortalV1Msg buildReqLogoutMsg(int serialNo, String userIp) {
        PortalV1Msg msg = buildV1PapMsg();
        msg.setType(5);
        msg.setSerialNo(serialNo);
        msg.setUserIp(userIp);
        msg.setAttrNum(0);
        return msg;
    }

    public PortalV1Msg buildAffAckAuthMsg(int serialNo, String userIp) {
        PortalV1Msg msg = buildV1PapMsg();
        msg.setType(7);
        msg.setSerialNo(serialNo);
        msg.setUserIp(userIp);
        msg.setAttrNum(0);
        return msg;
    }

    private PortalV1Msg buildV1PapMsg() {
        PortalV1Msg msg = new PortalV1Msg();
        msg.setVer(1);

        msg.setPapChap(1);
        msg.setRsvd(0);

        msg.setReqId(0);

        msg.setUserPort(0);
        msg.setErrCode(0);
        return msg;
    }


}
